/*
 * XML Type:  EClassifier
 * Namespace: http://www.eclipse.org/emf/2002/Ecore
 * Java type: org.eclipse.emf.x2002.ecore.EClassifier
 *
 * Automatically generated - do not modify.
 */
package org.eclipse.emf.x2002.ecore.impl;
/**
 * An XML EClassifier(@http://www.eclipse.org/emf/2002/Ecore).
 *
 * This is a complex type.
 */
public class EClassifierImpl extends org.eclipse.emf.x2002.ecore.impl.ENamedElementImpl implements org.eclipse.emf.x2002.ecore.EClassifier
{
    private static final long serialVersionUID = 1L;
    
    public EClassifierImpl(org.apache.xmlbeans.SchemaType sType)
    {
        super(sType);
    }
    
    private static final javax.xml.namespace.QName INSTANCECLASSNAME$0 = 
        new javax.xml.namespace.QName("", "instanceClassName");
    private static final javax.xml.namespace.QName INSTANCECLASS$2 = 
        new javax.xml.namespace.QName("", "instanceClass");
    private static final javax.xml.namespace.QName DEFAULTVALUE$4 = 
        new javax.xml.namespace.QName("", "defaultValue");
    
    
    /**
     * Gets the "instanceClassName" attribute
     */
    public java.lang.String getInstanceClassName()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(INSTANCECLASSNAME$0);
            if (target == null)
            {
                return null;
            }
            return target.getStringValue();
        }
    }
    
    /**
     * Gets (as xml) the "instanceClassName" attribute
     */
    public org.eclipse.emf.x2002.ecore.EString xgetInstanceClassName()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.eclipse.emf.x2002.ecore.EString target = null;
            target = (org.eclipse.emf.x2002.ecore.EString)get_store().find_attribute_user(INSTANCECLASSNAME$0);
            return target;
        }
    }
    
    /**
     * True if has "instanceClassName" attribute
     */
    public boolean isSetInstanceClassName()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().find_attribute_user(INSTANCECLASSNAME$0) != null;
        }
    }
    
    /**
     * Sets the "instanceClassName" attribute
     */
    public void setInstanceClassName(java.lang.String instanceClassName)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(INSTANCECLASSNAME$0);
            if (target == null)
            {
                target = (org.apache.xmlbeans.SimpleValue)get_store().add_attribute_user(INSTANCECLASSNAME$0);
            }
            target.setStringValue(instanceClassName);
        }
    }
    
    /**
     * Sets (as xml) the "instanceClassName" attribute
     */
    public void xsetInstanceClassName(org.eclipse.emf.x2002.ecore.EString instanceClassName)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.eclipse.emf.x2002.ecore.EString target = null;
            target = (org.eclipse.emf.x2002.ecore.EString)get_store().find_attribute_user(INSTANCECLASSNAME$0);
            if (target == null)
            {
                target = (org.eclipse.emf.x2002.ecore.EString)get_store().add_attribute_user(INSTANCECLASSNAME$0);
            }
            target.set(instanceClassName);
        }
    }
    
    /**
     * Unsets the "instanceClassName" attribute
     */
    public void unsetInstanceClassName()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_attribute(INSTANCECLASSNAME$0);
        }
    }
    
    /**
     * Gets the "instanceClass" attribute
     */
    public java.lang.String getInstanceClass()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(INSTANCECLASS$2);
            if (target == null)
            {
                return null;
            }
            return target.getStringValue();
        }
    }
    
    /**
     * Gets (as xml) the "instanceClass" attribute
     */
    public org.eclipse.emf.x2002.ecore.EJavaClass xgetInstanceClass()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.eclipse.emf.x2002.ecore.EJavaClass target = null;
            target = (org.eclipse.emf.x2002.ecore.EJavaClass)get_store().find_attribute_user(INSTANCECLASS$2);
            return target;
        }
    }
    
    /**
     * True if has "instanceClass" attribute
     */
    public boolean isSetInstanceClass()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().find_attribute_user(INSTANCECLASS$2) != null;
        }
    }
    
    /**
     * Sets the "instanceClass" attribute
     */
    public void setInstanceClass(java.lang.String instanceClass)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(INSTANCECLASS$2);
            if (target == null)
            {
                target = (org.apache.xmlbeans.SimpleValue)get_store().add_attribute_user(INSTANCECLASS$2);
            }
            target.setStringValue(instanceClass);
        }
    }
    
    /**
     * Sets (as xml) the "instanceClass" attribute
     */
    public void xsetInstanceClass(org.eclipse.emf.x2002.ecore.EJavaClass instanceClass)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.eclipse.emf.x2002.ecore.EJavaClass target = null;
            target = (org.eclipse.emf.x2002.ecore.EJavaClass)get_store().find_attribute_user(INSTANCECLASS$2);
            if (target == null)
            {
                target = (org.eclipse.emf.x2002.ecore.EJavaClass)get_store().add_attribute_user(INSTANCECLASS$2);
            }
            target.set(instanceClass);
        }
    }
    
    /**
     * Unsets the "instanceClass" attribute
     */
    public void unsetInstanceClass()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_attribute(INSTANCECLASS$2);
        }
    }
    
    /**
     * Gets the "defaultValue" attribute
     */
    public java.lang.String getDefaultValue()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(DEFAULTVALUE$4);
            if (target == null)
            {
                return null;
            }
            return target.getStringValue();
        }
    }
    
    /**
     * Gets (as xml) the "defaultValue" attribute
     */
    public org.eclipse.emf.x2002.ecore.EJavaObject xgetDefaultValue()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.eclipse.emf.x2002.ecore.EJavaObject target = null;
            target = (org.eclipse.emf.x2002.ecore.EJavaObject)get_store().find_attribute_user(DEFAULTVALUE$4);
            return target;
        }
    }
    
    /**
     * True if has "defaultValue" attribute
     */
    public boolean isSetDefaultValue()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().find_attribute_user(DEFAULTVALUE$4) != null;
        }
    }
    
    /**
     * Sets the "defaultValue" attribute
     */
    public void setDefaultValue(java.lang.String defaultValue)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(DEFAULTVALUE$4);
            if (target == null)
            {
                target = (org.apache.xmlbeans.SimpleValue)get_store().add_attribute_user(DEFAULTVALUE$4);
            }
            target.setStringValue(defaultValue);
        }
    }
    
    /**
     * Sets (as xml) the "defaultValue" attribute
     */
    public void xsetDefaultValue(org.eclipse.emf.x2002.ecore.EJavaObject defaultValue)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.eclipse.emf.x2002.ecore.EJavaObject target = null;
            target = (org.eclipse.emf.x2002.ecore.EJavaObject)get_store().find_attribute_user(DEFAULTVALUE$4);
            if (target == null)
            {
                target = (org.eclipse.emf.x2002.ecore.EJavaObject)get_store().add_attribute_user(DEFAULTVALUE$4);
            }
            target.set(defaultValue);
        }
    }
    
    /**
     * Unsets the "defaultValue" attribute
     */
    public void unsetDefaultValue()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_attribute(DEFAULTVALUE$4);
        }
    }
}
